#ifndef Camera_h_
#define Camera_h_

#include "CVector.h"
#include <cstdlib>
#include <GL/glut.h>

#define pi             3.1415926536


class Camera
{
private:
    CVector3 position;
    CVector3 eye;
    CVector3 orientation;
    
    bool PoV; // point of view: 0-first pers; 1-third person;
    
    // third person
    double radius; 
    double cam_distance;
    double azimuth;
    double elevation;
    int rc;
          
public:
    Camera::Camera();
    void setPoV1(CVector3 eye_, double el, double az, double rad);
    void setPosition(CVector3 pos) {position=pos;}
    void moveCam() {};
    void useCam();
    
    // third person
    void changeAng(float el, float az);
    void changeRadius(double r) {radius+=r;}
	void changeEye(CVector3 eye_) {eye+=eye_;}
	void changePosition(CVector3 pos_) {position+=pos_;}
    double getElevation(void) {return elevation;}
    double getAzimuth(void) {return azimuth;}
    void setRadius(double r) {radius=r;}          
};



#endif
